package conf

import (
	"fmt"
	"sync"
)

var (
	ConfigLock sync.RWMutex //读写锁
	MapCbtAction = make(map[string]ConfigCbtAction) 	//战斗动作 	// J_技能招式.xlsx 
	MapCbtDamage = make(map[int]ConfigCbtDamage) 	//战斗伤害 	// M_描述战斗.xlsx 
	MapCbtEffKee = make(map[int]ConfigCbtEffKee) 	//气血描述 	// M_描述战斗.xlsx 
	MapCbtKee = make(map[int]ConfigCbtKee) 	//气血描述 	// M_描述战斗.xlsx 
	MapCbtSen = make(map[int]ConfigCbtSen) 	//精神描述 	// M_描述战斗.xlsx 
	MapCity = make(map[long]ConfigCity) 	//城市 	// D_地图.xlsx 
	MapDescDamage = make(map[int]ConfigDescDamage) 	//伤害描述 	// M_描述战力.xlsx 
	MapDescDodge = make(map[int]ConfigDescDodge) 	//闪躲描述 	// M_描述战力.xlsx 
	MapDescGuard = make(map[int]ConfigDescGuard) 	//防御描述 	// M_描述战力.xlsx 
	MapDescHurt = make(map[int]ConfigDescHurt) 	//敌人相遇描述 	// M_描述战力.xlsx 
	MapDescLevel = make(map[int]ConfigDescLevel) 	//等级 	// M_描述.xlsx 
	MapDescParryU = make(map[int]ConfigDescParryU) 	//招架描述空手 	// M_描述战力.xlsx 
	MapDescParryW = make(map[int]ConfigDescParryW) 	//招架描述武器 	// M_描述战力.xlsx 
	MapDescPer1 = make(map[int]ConfigDescPer1) 	//容貌描述小孩 	// M_描述.xlsx 
	MapDescPer2 = make(map[int]ConfigDescPer2) 	//容貌描述男 	// M_描述.xlsx 
	MapDescPer3 = make(map[int]ConfigDescPer3) 	//容貌描述女 	// M_描述.xlsx 
	MapDescPower = make(map[int]ConfigDescPower) 	//战斗力描述 	// M_描述战力.xlsx 
	MapDescWinner = make(map[int]ConfigDescWinner) 	//比试胜利描述 	// M_描述战力.xlsx 
	MapDrop = make(map[int]ConfigDrop) 	//掉落 	// D_掉落.xlsx 
	MapEquip = make(map[int]ConfigEquip) 	//装备 	// Z_装备.xlsx 
	MapFamily = make(map[string]ConfigFamily) 	//门派 	// M_门派.xlsx 
	MapGlobal = make(map[int]ConfigGlobal) 	//E全局常数 	// Q_全局常数.xlsx 
	MapItem = make(map[int]ConfigItem) 	//道具 	// D_道具.xlsx 
	MapItemUseDesc = make(map[string]ConfigItemUseDesc) 	//使用描述 	// D_道具.xlsx 
	MapLanguage = make(map[string]ConfigLanguage) 	//文本 	// B_Lang.xlsx 
	MapMailText = make(map[int]ConfigMailText) 	//E邮件文本 	// B_Lang邮件.xlsx 
	MapNameBad = make(map[int]ConfigNameBad) 	//屏蔽字 	// B_Lang姓名表.xlsx 
	MapNameFemale = make(map[int]ConfigNameFemale) 	//女名 	// B_Lang姓名表.xlsx 
	MapNameMale = make(map[int]ConfigNameMale) 	//男名 	// B_Lang姓名表.xlsx 
	MapNameSur = make(map[int]ConfigNameSur) 	//姓 	// B_Lang姓名表.xlsx 
	MapNoticeRolling = make(map[int]ConfigNoticeRolling) 	//游戏走马灯 	// D_定时走马灯.xlsx 
	MapNpc = make(map[int]ConfigNpc) 	//NPC 	// N_NPC.xlsx 
	MapPerform = make(map[string]ConfigPerform) 	//技法 	// J_技法.xlsx 
	MapProtocolResult = make(map[int]ConfigProtocolResult) 	//E错误码 	// B_Lang返回码.xlsx 
	MapRace = make(map[int]ConfigRace) 	//种族 	// Z_种族.xlsx 
	MapRoom = make(map[long]ConfigRoom) 	//房间 	// D_地图.xlsx 
	MapServer = make(map[int]ConfigServer) 	//游戏服务器列表 	// F_服务器配置.xlsx 
	MapSkill = make(map[string]ConfigSkill) 	//技能 	// J_技能.xlsx 
	MapSkillDesc = make(map[int]ConfigSkillDesc) 	//技能描述 	// J_技能.xlsx 
	MapSkillDodge = make(map[string]ConfigSkillDodge) 	//技能轻功 	// J_技能.xlsx 
	MapSkillParry = make(map[string]ConfigSkillParry) 	//技能招架 	// J_技能.xlsx 
	MapTest = make(map[int]ConfigTest) 	//测试公共类 	// Z_测试类.xlsx 
	MapWeaponType = make(map[string]ConfigWeaponType) 	//装备 	// Z_装备.xlsx 
)

func InitMapAll() bool {
	fmt.Println("读取配置开始......")

	ConfigLock.Lock()
	defer ConfigLock.Unlock()

	if err := ReadJson("ConfigCbtAction", &MapCbtAction); err != nil {
		fmt.Println("Read ConfigCbtAction 战斗动作  J_技能招式.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigCbtDamage", &MapCbtDamage); err != nil {
		fmt.Println("Read ConfigCbtDamage 战斗伤害  M_描述战斗.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigCbtEffKee", &MapCbtEffKee); err != nil {
		fmt.Println("Read ConfigCbtEffKee 气血描述  M_描述战斗.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigCbtKee", &MapCbtKee); err != nil {
		fmt.Println("Read ConfigCbtKee 气血描述  M_描述战斗.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigCbtSen", &MapCbtSen); err != nil {
		fmt.Println("Read ConfigCbtSen 精神描述  M_描述战斗.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigCity", &MapCity); err != nil {
		fmt.Println("Read ConfigCity 城市  D_地图.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescDamage", &MapDescDamage); err != nil {
		fmt.Println("Read ConfigDescDamage 伤害描述  M_描述战力.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescDodge", &MapDescDodge); err != nil {
		fmt.Println("Read ConfigDescDodge 闪躲描述  M_描述战力.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescGuard", &MapDescGuard); err != nil {
		fmt.Println("Read ConfigDescGuard 防御描述  M_描述战力.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescHurt", &MapDescHurt); err != nil {
		fmt.Println("Read ConfigDescHurt 敌人相遇描述  M_描述战力.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescLevel", &MapDescLevel); err != nil {
		fmt.Println("Read ConfigDescLevel 等级  M_描述.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescParryU", &MapDescParryU); err != nil {
		fmt.Println("Read ConfigDescParryU 招架描述空手  M_描述战力.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescParryW", &MapDescParryW); err != nil {
		fmt.Println("Read ConfigDescParryW 招架描述武器  M_描述战力.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescPer1", &MapDescPer1); err != nil {
		fmt.Println("Read ConfigDescPer1 容貌描述小孩  M_描述.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescPer2", &MapDescPer2); err != nil {
		fmt.Println("Read ConfigDescPer2 容貌描述男  M_描述.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescPer3", &MapDescPer3); err != nil {
		fmt.Println("Read ConfigDescPer3 容貌描述女  M_描述.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescPower", &MapDescPower); err != nil {
		fmt.Println("Read ConfigDescPower 战斗力描述  M_描述战力.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDescWinner", &MapDescWinner); err != nil {
		fmt.Println("Read ConfigDescWinner 比试胜利描述  M_描述战力.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDrop", &MapDrop); err != nil {
		fmt.Println("Read ConfigDrop 掉落  D_掉落.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigEquip", &MapEquip); err != nil {
		fmt.Println("Read ConfigEquip 装备  Z_装备.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigFamily", &MapFamily); err != nil {
		fmt.Println("Read ConfigFamily 门派  M_门派.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigGlobal", &MapGlobal); err != nil {
		fmt.Println("Read ConfigGlobal E全局常数  Q_全局常数.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigItem", &MapItem); err != nil {
		fmt.Println("Read ConfigItem 道具  D_道具.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigItemUseDesc", &MapItemUseDesc); err != nil {
		fmt.Println("Read ConfigItemUseDesc 使用描述  D_道具.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigLanguage", &MapLanguage); err != nil {
		fmt.Println("Read ConfigLanguage 文本  B_Lang.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigMailText", &MapMailText); err != nil {
		fmt.Println("Read ConfigMailText E邮件文本  B_Lang邮件.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameBad", &MapNameBad); err != nil {
		fmt.Println("Read ConfigNameBad 屏蔽字  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameFemale", &MapNameFemale); err != nil {
		fmt.Println("Read ConfigNameFemale 女名  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameMale", &MapNameMale); err != nil {
		fmt.Println("Read ConfigNameMale 男名  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameSur", &MapNameSur); err != nil {
		fmt.Println("Read ConfigNameSur 姓  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNoticeRolling", &MapNoticeRolling); err != nil {
		fmt.Println("Read ConfigNoticeRolling 游戏走马灯  D_定时走马灯.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNpc", &MapNpc); err != nil {
		fmt.Println("Read ConfigNpc NPC  N_NPC.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigPerform", &MapPerform); err != nil {
		fmt.Println("Read ConfigPerform 技法  J_技法.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigProtocolResult", &MapProtocolResult); err != nil {
		fmt.Println("Read ConfigProtocolResult E错误码  B_Lang返回码.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigRace", &MapRace); err != nil {
		fmt.Println("Read ConfigRace 种族  Z_种族.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigRoom", &MapRoom); err != nil {
		fmt.Println("Read ConfigRoom 房间  D_地图.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigServer", &MapServer); err != nil {
		fmt.Println("Read ConfigServer 游戏服务器列表  F_服务器配置.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigSkill", &MapSkill); err != nil {
		fmt.Println("Read ConfigSkill 技能  J_技能.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigSkillDesc", &MapSkillDesc); err != nil {
		fmt.Println("Read ConfigSkillDesc 技能描述  J_技能.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigSkillDodge", &MapSkillDodge); err != nil {
		fmt.Println("Read ConfigSkillDodge 技能轻功  J_技能.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigSkillParry", &MapSkillParry); err != nil {
		fmt.Println("Read ConfigSkillParry 技能招架  J_技能.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigTest", &MapTest); err != nil {
		fmt.Println("Read ConfigTest 测试公共类  Z_测试类.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigWeaponType", &MapWeaponType); err != nil {
		fmt.Println("Read ConfigWeaponType 装备  Z_装备.xlsx  err", err)
		return false
	}

	fmt.Println("t读取配置结束......")
	return true
}
